package model

/*******************************************************************************
Copyright:cloud
Author:cloudapex@126.com
Version:1.0
Date:2020-09-29
Description: 系统[用户|用户组|角色|权限]
*******************************************************************************/
import (
	"context"
	"service/ctrl"
	"service/model/mod"

	gpc "gitee.com/cloudapex/protos/comm/pb"
	gpb "gitee.com/cloudapex/protos/permis/pb"
	"google.golang.org/grpc"
)

var Sysm system

func init() {
	ctrl.GCon.RegistClienter(mod.GCONN_PERMIS, func(c *grpc.ClientConn) { Sysm.cli = gpb.NewSystemClient(c) })
}

type system struct {
	cli gpb.SystemClient
}

// ---------- 用户

// system.UserChoice 获取用户的组织角色
func (this *system) UserChoice(ctx context.Context, in *gpc.IdRequest) (*gpb.UserChoiceRes, error) {
	return this.cli.UserChoice(ctx, in)
}

// system.UserChoose 修改用户的组织角色
func (this *system) UserChoose(ctx context.Context, in *gpb.UserChooseReq) (*gpc.UnResponse, error) {
	return this.cli.UserChoose(ctx, in)
}

// system.UserPermis 获取用户的权限信息
func (this *system) UserPermis(ctx context.Context, in *gpb.UserPermisReq) (*gpb.UserPermisRes, error) {
	return this.cli.UserPermis(ctx, in)
}

// ---------- 组织

// system.GroupList 组织列表
func (this *system) GroupList(ctx context.Context, in *gpb.GroupListReq) (*gpb.GroupListRes, error) {
	return this.cli.GroupList(ctx, in)
}

// system.GroupTree 组织树表
func (this *system) GroupTree(ctx context.Context, in *gpc.IdRequest) (*gpb.GroupTreeRes, error) {
	return this.cli.GroupTree(ctx, in)
}

// system.GroupAdd 新增组织
func (this *system) GroupAdd(ctx context.Context, in *gpb.GroupAddReq) (*gpc.IdResponse, error) {
	return this.cli.GroupAdd(ctx, in)
}

// system.GroupUpd 编辑组织
func (this *system) GroupUpd(ctx context.Context, in *gpb.GroupUpdReq) (*gpc.UnResponse, error) {
	return this.cli.GroupUpd(ctx, in)
}

// system.GroupDel 删除组织
func (this *system) GroupDel(ctx context.Context, in *gpc.IdRequest) (*gpc.UnResponse, error) {
	return this.cli.GroupDel(ctx, in)
}

// system.GroupChoice 获取组织角色Ids
func (this *system) GroupChoice(ctx context.Context, in *gpc.IdRequest) (*gpb.GroupChoiceRes, error) {
	return this.cli.GroupChoice(ctx, in)
}

// system.GroupChoose 修改组织角色Ids
func (this *system) GroupChoose(ctx context.Context, in *gpb.GroupChooseReq) (*gpc.UnResponse, error) {
	return this.cli.GroupChoose(ctx, in)
}

// ---------- 角色

// system.RoleList 角色列表
func (this *system) RoleList(ctx context.Context, in *gpb.RoleListReq) (*gpb.RoleListRes, error) {
	return this.cli.RoleList(ctx, in)
}

// system.RoleLabs 角色简表
func (this *system) RoleLabs(ctx context.Context, in *gpb.RoleLabsReq) (*gpb.RoleLabsRes, error) {
	return this.cli.RoleLabs(ctx, in)
}

// system.RoleAdd 新增角色
func (this *system) RoleAdd(ctx context.Context, in *gpb.RoleAddReq) (*gpc.IdResponse, error) {
	return this.cli.RoleAdd(ctx, in)
}

// system.RoleUpd 编辑角色
func (this *system) RoleUpd(ctx context.Context, in *gpb.RoleUpdReq) (*gpc.UnResponse, error) {
	return this.cli.RoleUpd(ctx, in)
}

// system.RoleDel 删除角色
func (this *system) RoleDel(ctx context.Context, in *gpc.IdRequest) (*gpc.UnResponse, error) {
	return this.cli.RoleDel(ctx, in)
}

// system.RoleChoice 获取角色权限Ids
func (this *system) RoleChoice(ctx context.Context, in *gpc.IdRequest) (*gpb.RoleChoiceRes, error) {
	return this.cli.RoleChoice(ctx, in)
}

// system.RoleChoose 修改角色权限Ids
func (this *system) RoleChoose(ctx context.Context, in *gpb.RoleChooseReq) (*gpc.UnResponse, error) {
	return this.cli.RoleChoose(ctx, in)
}

// ---------- 菜单

//  system.MenuList 菜单列表
func (this *system) MenuList(ctx context.Context, in *gpb.MenuListReq) (*gpb.MenuListRes, error) {
	return this.cli.MenuList(ctx, in)
}

//  system.MenuTree 菜单树表
func (this *system) MenuTree(ctx context.Context, in *gpc.IdRequest) (*gpb.MenuTreeRes, error) {
	return this.cli.MenuTree(ctx, in)
}

//  system.MenuAdd 新增菜单
func (this *system) MenuAdd(ctx context.Context, in *gpb.MenuAddReq) (*gpc.IdResponse, error) {
	return this.cli.MenuAdd(ctx, in)
}

//  system.MenuUpd 编辑菜单
func (this *system) MenuUpd(ctx context.Context, in *gpb.MenuUpdReq) (*gpc.UnResponse, error) {
	return this.cli.MenuUpd(ctx, in)
}

//  system.MenuDel 删除菜单
func (this *system) MenuDel(ctx context.Context, in *gpc.CoXIdRequest) (*gpc.UnResponse, error) {
	return this.cli.MenuDel(ctx, in)
}
